from django.core.files.storage import Storage
from django.conf import settings


class FastDFSStorage(Storage):
    """自定义文件存储类"""

    def __init__(self, fdfs_base_url=None):
        """我需要初始化文件存储对象的时候，获取文件存储服务器位置"""
        # if not fdfs_base_url: # 如果没传参数
        #     self.fdfs_base_url = settings.FDFS_BASE_URL
        self.fdfs_base_url = fdfs_base_url or settings.FDFS_BASE_URL

    def _open(self, name, mode='rb'):
        """
        打开文件时会被调用的
        :param name: 要打开的文件名字
        :param mode: 打开文件的模式
        :return: None
        """
        # 目前不需要打开任何的文件，但是文档告诉我必须重写，所以pass
        pass

    def _save(self, name, content):
        """
        保存文件时会被调用的
        :param name: 要保存的文件名字
        :param content: 要保存的文件内容
        :return: None
        """
        # 目前不需要保存任何的文件，但是文档告诉我必须重写，所以pass
        pass

    def url(self, name):
        """
        返回文件全路径
        :param name: 要拼接全路径的文件的名字 group1/M00/00/00/CtM3BVnij5-AQyvAAAHc1z_-Xc4112.jpg
        :return: 文件全路径
        http://192.168.103.210:8888/group1/M00/00/00/CtM3BVnij5-AQyvAAAHc1z_-Xc4112.jpg
        """
        # return 'http://192.168.103.210:8888/' + name
        return self.fdfs_base_url + name
